﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
using Negocio.catalogos;
namespace Presentacion.controlasistencia
{
    public partial class bitacora : System.Web.UI.Page
    {
        catalogoDocente _objCatalogoDocente = new catalogoDocente();
        catalogoCarrera _objCatalogoCarrera = new catalogoCarrera();
        catalogoBitacora _objCatalogoBitacora = new catalogoBitacora();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["CodCarrera"] != null)
            {
                int idCarrera = int.Parse(Session["CodCarrera"].ToString());
                if (!IsPostBack)
                {
                    var resulCarrera = new catalogoCarrera().obtenerCarreraxID(idCarrera).First();
                    lblCarrera.Text = resulCarrera.carrera;

                    cbxDocentes.Items.Add(new ListItem("", ""));
                    foreach (var item in _objCatalogoDocente.consultarDocentesXIdCarrera(idCarrera))
                    {
                        cbxDocentes.Items.Add(new ListItem(item.nombre, item.idDocente.ToString()));
                    }

                    ddltipo.Items.Add(new ListItem("Seleccione un tipo.", ""));
                    ddltipo.Items.Add(new ListItem("JUSTIFICADA", "2"));
                    ddltipo.Items.Add(new ListItem("INJUSTIFICADA", "3"));
                }
            }
            else
            {
                Server.Transfer("~/controlasistencia/404.aspx");
            }
        }

        protected void btnAgregarActividad_Click(object sender, EventArgs e)
        {
            var postE = Request.Form["cbxMateria"];
            if (cbxDocentes.SelectedItem.Value != "" && postE != "" && txtfecha.Text != "" && ddltipo.SelectedItem.Value != "")
            {
                try
                {
                    string mensaje = "";
                    int idPeriodoActual = int.Parse(Session["periodo"].ToString()), idDocente = int.Parse(Session["idDocente"].ToString());
                    var resultBitacoraExistente = new catalogoBitacora().obtenerBitocaraXidDistribucionAndFecha(int.Parse(postE), DateTime.Parse(txtfecha.Text), idPeriodoActual);
                    if (resultBitacoraExistente == null)
                    {
                        mensaje = _objCatalogoBitacora.agregarBitacora(idDocente, idPeriodoActual, DateTime.Parse(txtfecha.Text), int.Parse(ddltipo.SelectedItem.Value), int.Parse(postE), txtObservaciones.Value);

                        ClientScript.RegisterStartupScript(GetType(), "jsMensaje", "javascript:sucessMessage('" + mensaje + "');", true);
                        ddltipo.ClearSelection();
                        cbxDocentes.ClearSelection();
                        txtfecha.Text = "";
                        txtObservaciones.Value = "";
                    }
                    else
                    {
                        ClientScript.RegisterStartupScript(GetType(), "jsMensaje", "javascript:errorMessage('Existe un registro con esa fecha y materia.');", true);
                    }

                }
                catch (Exception)
                {

                    ClientScript.RegisterStartupScript(GetType(), "jsMensaje", "javascript:errorMessage('Error al ingresar el registro.');", true);
                }

            }
            else
            {
                ClientScript.RegisterStartupScript(GetType(), "jsMensaje", "javascript:errorMessage('Llene todos los campos para poder continuar.');", true);
            }
        }

        [System.Web.Services.WebMethod(true)]
        public static string materias(string _idDistribucion, string _idPeriodo)
        {
            StringBuilder _html = new StringBuilder();
            int codigoDistribucion = int.Parse(_idDistribucion) , idPeriodo = int.Parse(_idPeriodo), contado = 0;
            try
            {
               var resultBitacora = new catalogoBitacora().obtenerBitocaraXidDistribucion(codigoDistribucion, idPeriodo);
               if (resultBitacora.Count != 0)
               {
                   foreach (var item in resultBitacora)
                   {
                       contado++;
                       _html.Append("<tr>" +
                                       "<td>" + contado + "</td>" +
                                       "<td>" + item.distribucion.Nombre + "</td>" +
                                       "<td>" + item.periodo.nombre + "</td>");
                       if (item.tipo == "J")
                       {
                           _html.Append("<td>JUSTIFICADO</td>");
                       }
                       else
                       {
                           _html.Append("<td>INJUSTIFICADO</td>");

                       }
                       _html.Append(
                                       "<td>" + item.fecha.ToShortDateString() + "</td>" +
                                                                           "<td>" + item.observacion + "</td>" +

                                                                           "</tr>");
                   }    
               }
               else
               {
                   _html.Append("<tr><td colspan='6'>No tiene registro de actividad</td></tr>");
               }
               
                return _html.ToString();
            }
            catch (Exception)
            {
                return "Error al cargar datos de tabla";
            }
        }

    }
}